#ifndef __GPLIB_H__
#define __GPLIB_H__

#include "project.h"
#include "gplib_cfg.h"

#if _OPERATING_SYSTEM == _OS_UCOS2
#include "os.h"
#endif

//Time and data reminder
typedef struct
{
	INT32S	tm_sec;		/* 0-59 */
	INT32S	tm_min;		/* 0-59 */
	INT32S	tm_hour;	/* 0-23 */
	INT32S	tm_mday;	/* 1-31 */
	INT32S	tm_mon;		/* 1-12 */
	INT32S	tm_year;
	INT32S	tm_wday;	/* 0-6 Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday */
} TIME_T;

// Component layer functions
extern void gplib_init(INT32U free_memory_start, INT32U free_memory_end);

#if (GPLIB_MEMORY_MANAGEMENT_EN == 1)

// Memory management
#include "gplib_mm_gplus.h"
#endif

/* WAVE */
#include "gplib_wav.h"

#include "gp_stdlib.h"

#include "gplib_print_string.h"

#include "storages.h"

#include "gplib_fs.h"

#include "gplib_calendar.h"

#include "gplib_jpeg.h"

#include "gplib_jpeg_encode.h"

#include "gplib_jpeg_decode.h"

#include "gplib_zp_decode.h"
#endif // __GPLIB_H__
